Today's computer networking environments, such as the Internet, offer mechanisms for delivering documents between heterogeneous computer systems. One such network, the World Wide Web network, which comprises a subset of Internet sites, supports a standard protocol for requesting and receiving documents known as web pages. This protocol is known as the Hypertext Transfer Protocol (“HTTP”). HTTP defines a high-level message passing protocol for sending and receiving packets of information between diverse applications. Details of HTTP can be found in various documents, including T. Berners-Lee et al., Hypertext Transfer Protocol—HTTP 1.0, Request for Comments (RFC) 1945, MIT/LCS, May 1996. Each HTTP message follows a specific layout that includes, among other information, a header that contains information specific to the request or response. Further, each HTTP request message contains a universal resource identifier (“URI”) that specifies to which network resource the request is to be applied. A URI is either a Uniform Resource Locator (“URL”) or a Uniform Resource Name (“URN”) or any other formatted string that identifies a network resource. The URI contained in a request message, in effect, identifies the destination machine for a message. URLs, as an example of URIs, are discussed in detail in T. Berners-Lee et al., Uniforn Resource Locators (URL), RVC 1738, CERN, Xerox PARC, Univ. of Minn., December 1994.
A browser application enables users to navigate among web servers on the web network by requesting and receiving web pages. For the purposes of this discussion, a web page is any type of document that can be served by a web server. These documents can be in various formats such as an HTML format, an XHTML format, a word processing format (e.g., Microsoft Word), a spreadsheet format (e.g., Microsoft Excel), a presentation format (e.g., Microsoft PowerPoint), a portable document format (e.g., Adobe PDF), and so on. The HTML format is a document markup language, defined by the Hypertext Markup Language (“HTML”) specification. HTML defines tags for specifying how to interpret the text and images stored in an HTML document. For example, there are HTML tags for defining paragraph formats and for emboldening and underlining text. In addition, the HTML format defines tags for adding images to documents and for formatting and aligning text with respect to images. HTML tags appear between angle brackets, for example, <HTML>. Further details of HTML are discussed in T. Berners-Lee and D. Connolly, Hypertext Markup Language-2.0, RFC 1866, MIT/W3C, November 1995.
A web browser application executes on a client computer, which communicates with a web server by sending and receiving HTTP messages. The web browser “navigates” to new locations on the network to browse (display) what is available at these locations. (A collection of web pages at a location (e.g., hosted by the same web server) is referred to as a “web site.”) In particular, when the web browser “navigates” to a new location, it requests a new document from the new location (e.g., the web server) by sending an HTTP request message using any well-known underlying communications protocol. The HTTP request message follows the specific layout discussed above, including a header and a URI field that specifies the network location to which to apply the request. When the web server specified by URI receives the HTTP request message, it interprets the message and sends a return message to the source location that originated the message in the form of an HTTP response message. In addition to the standard features of an HTTP message such as the header, the HTTP response message contains the requested HTML document. When the HTTP response message reaches the client computer, the web browser application extracts the HTML document from the message and parses and interprets (executes) the HTML code in the document to display the document on a display screen of the client computer as specified by the HTML tags.
The creation and maintenance of web pages can be a time-consuming task. Many tools are available to assist in the creation of web pages, which are defined by HTML documents. Web site administrators use these tools to define the layout of a web page, the content to be dynamically added to a web page, links to other web pages, and so on. When an administrator wants to modify a web page, the administrator may use the same tools to generate a revised HTML document.
Some web sites create all their HTML documents dynamically, based on content stored in a database. For example, a news web site may store all its articles in a database along with information describing the layout of each web page. When the news web site is accessed, the page layout description along with its content is retrieved from the database and an HTML document is created. These web sites may use a content management system to manage the layout description and content. Some content management systems provide special-purpose editors to assist users in managing the information stored in the database.
Although these tools for creating and maintaining web pages generally operate on offline copies of an entire web site, some of these tools allow users to browse to a live web page and select to edit that web page. Such tools are referred to as “online” editors. One browser provides an online editor that is launched in a separate window for modifying the definition of the web page currently been viewed. That editor provides a what-you-see-is-what-you-get (“WYSIWYG”) metaphor that allows images from the remote computer system to be added to the definition of the web page. When editing of the web page is complete, a user can select a publish button and enter appropriate publication information for updating the definition of the web page at the web site. The publication information may include the URL of the web page, user name and password, title of web page, and so on.
Current tools for creating and maintaining web pages have several disadvantages. First, these tools often do not provide any indication of whether a web page that is currently being displayed by a browser can be edited by the user. Thus, to find out whether a web page is editable, a user may try to edit the web page. If the web page is not editable, the user finds out when an error message is displayed. Second, these tools typically perform the editing process in a window that is separate from the window used for browsing. As such, the user is forced to shift to an editing context, rather than simply editing in a browsing context. Third, after the editing of the web page is complete, a user typically publishes the web page so that the edited web page is stored at the web site. To publish the edited web page, a user may need to use a separate tool from the browser and editor to identify which URLs are linked to which directories at the web site. Alternatively, some tools may allow a web site administrator to provide a file to a user that maps URLs to directories. After using that tool, the user enters the destination directory into a publication window of the editor so that the edited web page can be uploaded and stored at the appropriate location of the web site. It would be desirable to have a technique for editing web pages that would overcome these disadvantages.